package com.jimmyhsu.activitydemo2;

import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class RecyclerActivity extends AppCompatActivity {


    @BindView(R.id.id_recycler_view)
    RecyclerView mRecyclerView;
    @BindView(R.id.id_fab)
    FloatingActionButton mFab;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recycler);
        ButterKnife.bind(this);
        final List<String> datas = new ArrayList<>();
        datas.add("真理惟一可靠的标准就是永远自相符合。 —— 欧文");
        datas.add("土地是以它的肥沃和收获而被估价的；才能也是土地，不过它生产的不是粮食，而是真理。如果只能滋生瞑想和幻想的话，即使再大的才能也只是砂地或盐池，那上面连小草也长不出来的。 —— 别林斯基");
        datas.add("我需要三件东西：爱情友谊和图书。然而这三者之间何其相通！炽热的爱情可以充实图书的内容，图书又是人们最忠实的朋友。 —— 蒙田");
        datas.add("时间是一切财富中最宝贵的财富。 —— 德奥弗拉斯多");
        datas.add("世界上一成不变的东西，只有“任何事物都是在不断变化的”这条真理。 —— 斯里兰卡");
        datas.add("过放荡不羁的生活，容易得像顺水推舟，但是要结识良朋益友，却难如登天。 —— 巴尔扎克");
        datas.add("这世界要是没有爱情，它在我们心中还会有什么意义！这就如一盏没有亮光的走马灯。 —— 歌德");
        datas.add("真理惟一可靠的标准就是永远自相符合。 —— 欧文");
        datas.add("土地是以它的肥沃和收获而被估价的；才能也是土地，不过它生产的不是粮食，而是真理。如果只能滋生瞑想和幻想的话，即使再大的才能也只是砂地或盐池，那上面连小草也长不出来的。 —— 别林斯基");
        datas.add("我需要三件东西：爱情友谊和图书。然而这三者之间何其相通！炽热的爱情可以充实图书的内容，图书又是人们最忠实的朋友。 —— 蒙田");
        datas.add("时间是一切财富中最宝贵的财富。 —— 德奥弗拉斯多");
        datas.add("世界上一成不变的东西，只有“任何事物都是在不断变化的”这条真理。 —— 斯里兰卡");
        datas.add("过放荡不羁的生活，容易得像顺水推舟，但是要结识良朋益友，却难如登天。 —— 巴尔扎克");
        datas.add("这世界要是没有爱情，它在我们心中还会有什么意义！这就如一盏没有亮光的走马灯。 —— 歌德");
        datas.add("真理惟一可靠的标准就是永远自相符合。 —— 欧文");
        datas.add("土地是以它的肥沃和收获而被估价的；才能也是土地，不过它生产的不是粮食，而是真理。如果只能滋生瞑想和幻想的话，即使再大的才能也只是砂地或盐池，那上面连小草也长不出来的。 —— 别林斯基");
        datas.add("我需要三件东西：爱情友谊和图书。然而这三者之间何其相通！炽热的爱情可以充实图书的内容，图书又是人们最忠实的朋友。 —— 蒙田");
        datas.add("时间是一切财富中最宝贵的财富。 —— 德奥弗拉斯多");
        datas.add("世界上一成不变的东西，只有“任何事物都是在不断变化的”这条真理。 —— 斯里兰卡");
        datas.add("过放荡不羁的生活，容易得像顺水推舟，但是要结识良朋益友，却难如登天。 —— 巴尔扎克");
        datas.add("这世界要是没有爱情，它在我们心中还会有什么意义！这就如一盏没有亮光的走马灯。 —— 歌德");
        final ExampleRecyclerAdapter adapter = new ExampleRecyclerAdapter(datas);
        mRecyclerView.setAdapter(adapter);
        mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,
                StaggeredGridLayoutManager.VERTICAL));
        mRecyclerView.setItemAnimator(new DefaultItemAnimator());
        mFab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                datas.add(2, "新增的项目");
                adapter.setData(datas);
                adapter.notifyItemInserted(2);
            }
        });
    }


    class ExampleRecyclerAdapter extends RecyclerView.Adapter<ExampleViewHolder> {

        private LayoutInflater mInflater = LayoutInflater.from(RecyclerActivity.this);
        private List<String> mDatas;

        public ExampleRecyclerAdapter(List<String> mDatas) {
            this.mDatas = mDatas;
        }

        public void setData(List<String> datas) {
            mDatas = datas;
        }
        @Override
        public ExampleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View convertView = mInflater.inflate(R.layout.recycler_item, parent, false);
            ExampleViewHolder holder = new ExampleViewHolder(convertView);
            convertView.setTag(holder);
            convertView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ExampleViewHolder holder1 = (ExampleViewHolder) v.getTag();
                    Toast.makeText(v.getContext(), holder1.mTitleTv.getText().toString(),
                            Toast.LENGTH_SHORT).show();
                }
            });
            return holder;
        }

        @Override
        public void onBindViewHolder(ExampleViewHolder holder, int position) {
            holder.mTitleTv.setText("标题" + (position + 1));
            holder.mContentTv.setText(mDatas.get(position));
        }

        @Override
        public int getItemCount() {
            return mDatas.size();
        }
    }

    class ExampleViewHolder extends RecyclerView.ViewHolder {

        @BindView(R.id.id_item_title)
        TextView mTitleTv;
        @BindView(R.id.id_item_content)
        TextView mContentTv;
        public ExampleViewHolder(View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
        }

    }
}
